package pl.elka.simulator.core.mobilityManager;

import java.util.List;

import pl.elka.simulator.core.EnviromentConfiguration;
import pl.elka.simulator.core.IPaintable;
import pl.elka.simulator.core.IPattern;
import pl.elka.simulator.core.Node;
import pl.elka.simulator.core.configurationCommand.ConfigurationCommandType;
import pl.elka.simulator.core.configurationCommand.ables.IAbleToConfiguration;
import pl.elka.simulator.core.experiment.NodePath;

public interface IMobilityManager extends IPattern<IMobilityManager>, IAbleToConfiguration {

	MobilityManagerType getType();
	List<ConfigurationCommandType> getAllowedConfigurationCommands();	
	//czas w sekundach
	void makeMove(long elapsedTime);
	void setId(String id);
	String getId();
	List<IPaintable> getPaintaibleElements();
	void applyEnviroment(EnviromentConfiguration cfg);
	List<? extends Node> getNodes();
	void clear();
}
